import axios from 'axios';
import mpAdapter from 'axios-miniprogram-adapter';

// 创建 axios 实例
const service = axios.create({
  adapter: mpAdapter, // 使用小程序适配器
  baseURL: 'https://storage.longdiankj.com/prod-api', // 替换为你的接口基础地址
  timeout: 15000 // 请求超时时间
});

let token;
const defaultToken = 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl9hcHBfdXNlcl9rZXkiOiI1MmRmZmZmMy02ZWNjLTQzYWQtYmRkNi04NDcwNDM1ODZiY2YifQ.jP9ViNj3Oiq5OMzPMLs4EyXnTeFgrGqmTlmqJodpbtMax29orsZPxwFYXZNgUrWcpNNGtAZTmdzADr5TLBxl6Q';
// 请求拦截器
service.interceptors.request.use(
  config => {
	
	 token = uni.getStorageSync('token');
	  
    // 在发送请求之前做些什么，例如添加请求头 先给个默认的， 登录之后替换为真的
    config.headers['Authorization'] =`Bearer ${token || defaultToken}`;
    return config;
  },
  error => {
    // 处理请求错误
    console.log('请求错误:', error);
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    const res = response.data;
    if (res.code!== 200) {
      // 处理业务错误
      console.log('业务错误:', res.message);
	  // if (res.code == 401) {
		 //  uni.removeStorageSync('token');
		 //  uni.redirectTo({
		 //    url: '/pages/login/index'
		 //  });
	  // }
      return Promise.reject(new Error(res.message || 'Error'));
    } else {
      return res;
    }
  },
  error => {
    // 处理响应错误
    console.log('响应错误:', error);
    return Promise.reject(error);
  }
);

// 封装 get 请求
export function get(url, params = {}) {
  return service.get(url, { params });
}

// 封装 post 请求
export function post(url, data = {}) {
  return service.post(url, data);
}

// 封装 put 请求
export function put(url, data = {}) {
  return service.put(url, data);
}

// 封装 delete 请求
export function del(url, params = {}) {
  return service.delete(url, { params });
}